import trim from 'lodash/trim'
import { getModelByModelTree } from '@ve/utils/utils'
//必须带done回调 执行完成调用
export default function getLayerData({ vm, action, done }) {
  // 这里是array 但是是单选 就默认取0
  if (action.extension.layer.value.length > 0) {
    let _value = {}
    const getDataKey = action.extension.getDataKey.value
    const moduleId = action.extension.layer.value[0] || ''
    const modulelObj = getModelByModelTree(moduleId, vm.$store.getters['preview/getNowPageData'])
    if (modulelObj?.type === 1 || modulelObj?.type === 2) {
      // 如果绑定的是页面类型 则获取页面的 requestData
      _value = modulelObj?.data?.requestData
      if (getDataKey) {
        // 如果有获取数据key 则根据获取数据key筛选数据
        const getDataKeyList = getDataKey.split(',')
        let _dataObj = {}
        getDataKeyList.map((item) => {
          item = trim(item)
          _dataObj[item] = _value[item] || ''
        })
        _value = _dataObj
      }
    }
    // 存储动作数据
    vm.$store.dispatch('actionDatas/setActionsData', {
      moduleId: vm.info._id,
      actionId: action._id,
      actionData: _value,
    })
    done(null, _value)
  } else {
    done(null, {})
  }
}
